import axios from 'axios';
import { ElMessage } from 'element-plus'
import router from '../router';


//创建axios实例
const request = axios.create({
    baseURL: '/api', // api的base_url
    timeout: 5000, // 请求超时时间
})

// request,请求拦截器,在发送请求之前将token放入请求头
request.interceptors.request.use(
    (config) => {//成功回调
        const LoginUser = JSON.parse(localStorage.getItem('token'))
        if (LoginUser && LoginUser.token) { // 判断是否存在token，如果存在的话，则每个http header都加上token
            config.headers.token = LoginUser.token;
        }
        return config;
    },
    (error) => {//失败回调
        console.log(error) 
        Promise.reject(error)
    }
)

// response,响应拦截器
request.interceptors.response.use(
    (response) => {//成功回调
        return response.data;
    },
    (error) => {//失败回调
        if(error.response.status == 401){//判断状态码是否为401
            ElMessage.error('登录状态已过期，请重新登录')
            // 跳转到登录页面
            router.push('/login')
          }else{
            ElMessage.error('接口访问异常')
          }
        Promise.reject(error)
    }

)

export default request;